package com.atdel.demo03;


/**
 * @BelongsProject: java_study
 * @BelongsPackage: com.atdel.demo03
 * @Author: Del
 * @CreateTime: 2025-03-03  19:19
 * @Description: 用于在支付过程中封装支付策略的上下文信息它依赖于具体的支付策略来执行支付操作
 * @Version: 1.0
 */
public class PaymentContext {
    // 存储当前上下文中的支付策略
    private PaymentStrategy strategy;

    /**
     * 构造方法，初始化支付上下文
     * @param strategy 用于设置支付上下文中的具体支付策略
     */
    public PaymentContext(PaymentStrategy strategy) {
        this.strategy = strategy;
    }

    /**
     * 执行支付操作的方法
     * 它使用上下文中的支付策略来完成支付过程
     * @param amount 需要支付的金额
     */
    public void executePayment(double amount) {
        strategy.pay(amount);
    }
}
